今日課程範圍
SQL Lesson 10: Queries with aggregates (Pt. 1)
https://sqlbolt.com/lesson/select_queries_with_aggregates
今天我們來談談aggregate function(聚合函數)
什麼是aggregate functio呢?
例如我們在Excel中常用的取總和(SUM)、取平均(AVG)以及最大/最小值(MAX/MIN)等
那麼這些函數為何會特別抽出來叫做聚合函數呢?
你可以觀察一下平常的使用情境
通常我們使用上方的函數時 通常都是對同一欄的多筆數據求平均或總和
因此這種多筆資料在一起使用的情境便有aggregate(聚合)的味道在裡面
此外 我們在做數據分析時常常會有分組的概念
例如想要找出公司中各個部門的員工人數或是公司中各部門裡年資最高的前輩
這時 我們將學到一個好用的語法叫做 GROUP BY
例如我們想要找出公司中各部門裡年資最高的前輩
我們就可以先把公司員工依照各部門分組
然後在各組中再用MAX()
找出年資最久的前輩
接下來 我們將運用這些聚合函數和 GROUP BY 來幫助我們做資料的處理
常見的聚合函數如下列表格所示
我們要找出在這間工作室中年資最久的員工
一看到最久 就知道我們可以使用MAX
這個聚合函數
所以我們可以使用以下語法便可找出年資最久的員工
SELECT MAX(Years_employed) FROM employees
我們要找出各個Role的平均年資
因此我們可以使用GROUP BY
與 AVG()
來發出合體技
SELECT Role,AVG(Years_employed) FROM employees
GROUP BY Role
第三題我們要找出各個建築物中員工的年資總和
所以我們需要用到GROUP BY Building
和 SUM(Years_employed)
兩個技能
所以我們依然使用合體技
SELECT Building,SUM(Years_employed) FROM employees
GROUP BY Building
藉由聚合函數的幫助 我們可以快速的完成部分的數據處理與統計
最後 我們完成今天的練習啦
我們明天見